A data storage system can include a system controller and multiple data storage devices (DSDs) such as, for example, hard disk drives (HDDs) and/or solid state drives. In addition to providing more capacity than a single DSD, data storage systems such as a redundant array of independent disks (RAID) or cloud storage systems can be used to safeguard data by maintaining redundant copies of data on different DSDs in the data storage system. In the event of a loss or corruption of data at one DSD, a redundant copy of the data on a different DSD can be accessed by the system controller.
The system controller in a data storage system often includes a data cache stored in a volatile memory to service read and write requests from a host. The volatile memory of the system controller can have a battery back-up to protect against a loss of unwritten data stored in the data cache which has not yet been written to a non-volatile memory of a DSD. A battery back-up, such as an uninterruptible power supply (UPS), can typically supply up to 72 hours of power to maintain data in the volatile memory of the system controller.
Despite the use of battery backed-up data caches in system controllers, unwritten data can still be lost in the event of an unexpected power loss. In particular, data to be written to a DSD can be sent from the system controller to the DSD and erased from the battery backed-up data cache of the system controller before the data is written to a non-volatile memory of the DSD. In such a situation, the lost data has often been stored in a write cache in a volatile memory of the DSD. When the DSD loses power, the write cache of the DSD is lost with the data.